
public interface TNodeInterface<T> {
	 // add a child as the last child of the current node
    public void addChild(T newData);

    //Return a String with the children of a node in parentheses.
    //The driver program below will give the following output:
    //Root(A1(B1(E1E2E3)B2(F1F2F3)B3)A2(C1C2)A3(D1D2D3D4)A4)
    public String toString();

    //Accessor method for the First Child
    public TNode<T> getFirstChild();

    //Accessor method for the Next Child
    public TNode<T> getNext();

    //Accessor method for the Data  NOTE: THE RETURN TYPE WAS ORIGINALLY MISTYPED
    public T getData();
}
